#include "Platform_Mac.h"
#include "CriticalSection_Mac.h"


static WONAPI::CriticalSection gInterlockedCrit;

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
long InterlockedIncrement(long *addend)
{
	gInterlockedCrit.Enter();
	long aVal = ++(*addend);
	gInterlockedCrit.Leave();
	return aVal;
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
long InterlockedDecrement(long *addend)
{
	gInterlockedCrit.Enter();
	long aVal = --(*addend);
	gInterlockedCrit.Leave();
	return aVal;
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void Sleep(DWORD dwMilliseconds)
{
	timeval tv;
	tv.tv_sec = dwMilliseconds/1000;
	tv.tv_usec = (dwMilliseconds%1000)*1000;
	select(0,NULL,NULL,NULL,&tv);
}
